上一篇,已經知道陣列是甚麼了,這個單元將介紹10種陣列操作的方法。
將元素新增在陣列後面。
同append。
arr = [1, 2, 3]
p arr.push("a", :b) # 印出 [1, 2, 3, "a", "b"]
p arr.append("しばいぬ") # 印出 [1, 2, 3, "a", "b", "しばいぬ"]
將元素新增在陣列前面。
同prepend。
arr = [1, 2, 3]
p arr.unshift("x", :y) # 印出 ["x", "y", 1, 2, 3]
p arr.prepend("しばいぬ") # 印出 ["しばいぬ", "x", "y", 1, 2, 3]
刪除陣列中的元素有好幾種方式,以下會介紹幾種刪除的方法。
如果()
中沒有帶入引數,會刪掉最後一個元素。
如果()
中有帶入引數,會刪除後面n
個元素。
arr = [1, 2, 3, "a", "b", "しばいぬ"]
arr.pop() # => ["しばいぬ"]
p arr # 印出 [1, 2, 3, "a", "b"]
arr.pop(3) # => [3, a", "b"]
p arr # 印出 [1, 2]
刪除陣列中,第一個的元素。
如果()
中有帶入引數,會刪前面n
個元素。
arr = [1, 2, 3, "a", "b", "しばいぬ"]
arr.shift()
p arr # 印出 [2, 3, "a", "b", "しばいぬ"]
arr.shift(2)
p arr # 印出 ["a", "b", "しばいぬ"]
刪除陣列中指定的元素。
arr = [1, 2, 3, 3, 3, 4, 5, 5, 6]
arr.delete(3)
p arr # 印出 [1, 2, 4, 5, 5, 6]
刪除指定位置(索引值)的元素。
arr = [1, 2, 4, 5, 5, 6]
arr.delete_at(3)
p arr
對陣列裡的每個元素進行運算,並收集成一個新的陣列。
arr = [1, 2, 3, 4, 5]
p arr.map{ |x| x*2} # 印出 [2, 4, 6, 8, 10]
p arr # 印出 [1, 2, 3, 4, 5]
從陣列中篩選符合條件的元素,並蒐集成一個新的陣列。
arr = [1, 2, 3, 4, 5, 6, 7]
p arr.select{|x| x > 5} # 印出 [6, 7]
# 選出此陣列中的奇數
p arr.select{|x| x.odd?} # 印出 [1, 3, 5, 7]
# 精簡版
p arr.select(&:odd?) # 印出 [1, 3, 5, 7]
對陣列中的每個元素進行運算,並將所有的運算結果歸納成一個單一結果。
arr = [1, 2, 3, 4, 5, 6, 7]
p arr.reduce { |sum, x| sum + x } # 印出 28
判斷陣列中是否有指定的元素。
如果有會回傳true
。
如果沒有,則會回傳false
。
hero = ["埼玉", "傑諾斯"," 爆滅", "龍卷", "邦格"]
p hero.include?("埼玉") # true
p hero.include?("king") # falue
以上這些方法只是其中的一小部分,如果還想知道其他的方法,可以去Ruby官方手冊去看,裡面會有更多的介紹。
參考資料: